package array;

/**
 * 给定一个数组，求累加子数组的最大和 画出图来直观表示一下
 */
public class getSubArrayMAxSum {

  public int getMaxSum(int array[]) {
    if (array == null || array.length == 0) {
      return -1;
    }

    int sum = array[0];
    int result = array[0];
    for (int i = 1; i < array.length; i++) {
      if (sum < 0) {
        sum = array[i];
      } else {
        sum += array[i];
      }

      if (sum > result) {
        result = sum;
      }
    }

    return result;


  }


  public static void main(String args[]) {
    int[] array = new int[]{1, -2, 3, 10, -4, 7, 2, -5};
    getSubArrayMAxSum getSubArrayMAxSum = new getSubArrayMAxSum();
    int result = getSubArrayMAxSum.getMaxSum(array);
    System.out.println(result);

  }


}
